home *** CD-ROM | disk | FTP | other *** search
/ Pascal Super Library / Pascal Super Library (CW International)(1997).bin / LIBRARY / TOOLPAS2 / GRAPH3.PAS < prev    next >
Pascal/Delphi Source File  |  1991-04-24  |  2KB  |  114 lines

  1.  
  2. (*
  3.  * GRAPH3 - Turbo3 Graphics emulation unit
  4.  *
  5.  * This unit was written as a crutch in converting graphics applications
  6.  * from Turbo3 to Turbo6 methods of graphics programming.
  7.  *
  8.  * Written by Samuel H. Smith, 4-21-91
  9.  *
  10.  *)
  11.  
  12. unit graph3;
  13.  
  14. interface
  15.  
  16.  
  17. {display mode controls}
  18. procedure GraphMode;
  19. procedure TextMode;
  20.  
  21. {graphics output functions}
  22. procedure Plot(X,Y,Color: Integer);
  23. procedure Draw(X1,Y1,X2,Y2,Color: Integer);
  24.  
  25. {text output functions in text or graphics modes}
  26. procedure GotoXY(X,Y: Real);
  27. procedure WriteStr(S: String);
  28.  
  29. {debugging}
  30. procedure message(s: string);
  31.  
  32. implementation
  33.  
  34. uses crt,misc,graphics;
  35.  
  36. const
  37.    graphics_active:     boolean = false;
  38.  
  39.    Graph_Driver:        integer = 0;
  40.    Graph_Mode:          integer = 0;
  41.    Driver_Path          = '.';
  42.  
  43. var
  44.    fd: text;
  45.  
  46. procedure GraphMode;
  47. begin
  48.    writeln(fd,'GraphMode');
  49.    graphics_active := true;
  50.  
  51.    Graph_Driver := detect;
  52.   {Graph_Driver := CGA;
  53.    Graph_Mode := CGAhi;}
  54.  
  55.    InitGraph(Graph_Driver,Graph_Mode,Driver_Path);
  56.  
  57.    graphsup_phys_maxx := GetMaxX-1;
  58.    graphsup_phys_minx := trunc(GetMaxX / 6.4);
  59.    graphsup_phys_miny := trunc(GetMaxY / 1.3);
  60.    graphsup_phys_maxy := trunc(GetMaxY / 7.14);
  61.    graphsup_mark_x    := round(GetMaxX / 130.0);
  62.    graphsup_mark_y    := round(GetMaxY / 100.0);
  63. end;
  64.  
  65. procedure TextMode;
  66. begin
  67.    writeln(fd,'TextMode');
  68.    CloseGraph;
  69.    graphics_active := false;
  70. end;
  71.  
  72. procedure Plot(X,Y,Color: Integer);
  73. begin
  74.    writeln(fd,'Plot(X,Y,Color: ',x,' ',y,' ',color,')');
  75. end;
  76.  
  77. procedure Draw(X1,Y1,X2,Y2,Color: Integer);
  78. begin
  79.    writeln(fd,'Draw(X1,Y1,X2,Y2,Color: ',x1,' ',y1,' ',x2,' ',y2,' ',color,')');
  80. end;
  81.  
  82. procedure GotoXY(X,Y: Real);
  83. begin
  84.    if graphics_active then
  85.       MoveTo( trunc(MISC_map_value(x,1,80,0,graphsup_phys_maxx)),
  86.               trunc(MISC_map_value(y,1,26,0,graphsup_phys_miny*1.3)) )
  87.    else
  88.       crt.gotoxy(round(x),round(y));
  89. end;
  90.  
  91. procedure WriteStr(S: String);
  92. begin
  93.    if graphics_active then
  94.       OutText(S);
  95.    else
  96.       write(S);
  97. end;
  98.  
  99. procedure message(s: string);
  100. begin
  101.    writeln(fd,s);
  102. end;
  103.  
  104. {initialization}
  105. var
  106.    c: char;
  107. begin
  108.    assign(fd,'graph3.out');
  109.    rewrite(fd);
  110.    settextbuf(fd,c);
  111. end.
  112.  
  113.  
  114.